Viewing file modifications

ABSTRACT

Upon closing and/or saving a file, a user may view changes made to the file.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.14/246,338 filed Apr. 7, 2014, which is a continuation of U.S. patentapplication Ser. No. 12/542,083 (now U.S. Pat. No. 8,694,881) filed Aug.17, 2009 by Dean P. Alderucci, Michael D. Brinton, Geoffrey M. Gelman,and Gregory P Manning, which is a continuation of U.S. patentapplication Ser. No. 11/625,508 (now U.S. Pat. No. 8,205,150), filedJan. 22, 2007 by Dean P. Alderucci, Michael D. Brinton, Geoffrey M.Gelman, and Gregory P. Manning, each of which is hereby incorporated byreference herein in its entirety.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 shows a prompt according to some embodiments.

FIG. 2 shows a prompt according to some embodiments.

FIG. 3 shows a prompt according to some embodiments.

FIG. 4 shows a prompt according to some embodiments.

FIG. 5 shows a prompt according to some embodiments.

FIG. 6 shows a process according to some embodiments.

DETAILED DESCRIPTION

The following sections I-X provide a guide to interpreting the presentapplication.

I. Terms

The term “product” means any machine, manufacture and/or composition ofmatter, unless expressly specified otherwise.

The term “process” means any process, algorithm, method or the like,unless expressly specified otherwise.

Each process (whether called a method, algorithm or otherwise)inherently includes one or more steps, and therefore all references to a“step” or “steps” of a process have an inherent antecedent basis in themere recitation of the term ‘process’ or a like term. Accordingly, anyreference in a claim to a ‘step’ or ‘steps’ of a process has sufficientantecedent basis.

The term “invention” and the like mean “the one or more inventionsdisclosed in this application”, unless expressly specified otherwise.

The terms “an embodiment”, “embodiment”, “embodiments”, “theembodiment”, “the embodiments”, “one or more embodiments”, “someembodiments”, “certain embodiments”, “one embodiment”, “anotherembodiment” and the like mean “one or more (but not all) embodiments ofthe disclosed invention(s)”, unless expressly specified otherwise.

The term “variation” of an invention means an embodiment of theinvention, unless expressly specified otherwise.

A reference to “another embodiment” in describing an embodiment does notimply that the referenced embodiment is mutually exclusive with anotherembodiment (e.g., an embodiment described before the referencedembodiment), unless expressly specified otherwise.

The terms “including”, “comprising” and variations thereof mean“including but not limited to”, unless expressly specified otherwise.

The terms “a”, “an” and “the” mean “one or more”, unless expresslyspecified otherwise.

The term “plurality” means “two or more”, unless expressly specifiedotherwise.

The term “herein” means “in the present application, including anythingwhich may be incorporated by reference”, unless expressly specifiedotherwise.

The phrase “at least one of”, when such phrase modifies a plurality ofthings (such as an enumerated list of things) means any combination ofone or more of those things, unless expressly specified otherwise. Forexample, the phrase “at least one of a widget, a car and a wheel” meanseither (i) a widget, (ii) a car, (iii) a wheel, (iv) a widget and a car,(v) a widget and a wheel, (vi) a car and a wheel, or (vii) a widget, acar and a wheel. The phrase “at least one of”, when such phrase modifiesa plurality of things does not mean “one of each of” the plurality ofthings.

Numerical terms such as “one”, “two”, etc. when used as cardinal numbersto indicate quantity of something (e.g., one widget, two widgets), meanthe quantity indicated by that numerical term, but do not mean at leastthe quantity indicated by that numerical term. For example, the phrase“one widget” does not mean “at least one widget”, and therefore thephrase “one widget” does not cover, e.g., two widgets.

The phrase “based on” does not mean “based only on”, unless expresslyspecified otherwise. In other words, the phrase “based on” describesboth “based only on” and “based at least on”. The phrase “based at leaston” is equivalent to the phrase “based at least in part on”.

The term “represent” and like terms are not exclusive, unless expresslyspecified otherwise. For example, the term “represents” do not mean“represents only”, unless expressly specified otherwise. In other words,the phrase “the data represents a credit card number” describes both“the data represents only a credit card number” and “the data representsa credit card number and the data also represents something else”.

The term “whereby” is used herein only to precede a clause or other setof words that express only the intended result, objective or consequenceof something that is previously and explicitly recited. Thus, when theterm “whereby” is used in a claim, the clause or other words that theterm “whereby” modifies do not establish specific further limitations ofthe claim or otherwise restricts the meaning or scope of the claim.

The term “e.g.” and like terms mean “for example”, and thus does notlimit the term or phrase it explains. For example, in the sentence “thecomputer sends data (e.g., instructions, a data structure) over theInternet”, the term “e.g.” explains that “instructions” are an exampleof “data” that the computer may send over the Internet, and alsoexplains that “a data structure” is an example of “data” that thecomputer may send over the Internet. However, both “instructions” and “adata structure” are merely examples of “data”, and other things besides“instructions” and “a data structure” can be “data”.

The term “respective” and like terms mean “taken individually”. Thus iftwo or more things have “respective” characteristics, then each suchthing has its own characteristic, and these characteristics can bedifferent from each other but need not be. For example, the phrase “eachof two machines has a respective function” means that the first suchmachine has a function and the second such machine has a function aswell. The function of the first machine may or may not be the same asthe function of the second machine.

The term “i.e.” and like terms mean “that is”, and thus limits the termor phrase it explains. For example, in the sentence “the computer sendsdata (i.e., instructions) over the Internet”, the term “i.e.” explainsthat “instructions” are the “data” that the computer sends over theInternet.

Any given numerical range shall include whole and fractions of numberswithin the range. For example, the range “1 to 10” shall be interpretedto specifically include whole numbers between 1 and 10 (e.g., 1, 2, 3,4, . . . 9) and non-whole numbers (e.g., 1.1, 1.2, . . . 1.9).

Where two or more terms or phrases are synonymous (e.g., because of anexplicit statement that the terms or phrases are synonymous), instancesof one such term/phrase does not mean instances of another suchterm/phrase must have a different meaning. For example, where astatement renders the meaning of “including” to be synonymous with“including but not limited to”, the mere usage of the phrase “includingbut not limited to” does not mean that the term “including” meanssomething other than “including but not limited to”.

II. Determining

The term “determining” and grammatical variants thereof (e.g., todetermine a price, determining a value, determine an object which meetsa certain criterion) is used in an extremely broad sense. The term“determining” encompasses a wide variety of actions and therefore“determining” can include calculating, computing, processing, deriving,investigating, looking up (e.g., looking up in a table, a database oranother data structure), ascertaining and the like. Also, “determining”can include receiving (e.g., receiving information), accessing (e.g.,accessing data in a memory) and the like. Also, “determining” caninclude resolving, selecting, choosing, establishing, and the like.

The term “determining” does not imply certainty or absolute precision,and therefore “determining” can include estimating, extrapolating,predicting, guessing and the like.

The term “determining” does not imply that mathematical processing mustbe performed, and does not imply that numerical methods must be used,and does not imply that an algorithm or process is used.

The term “determining” does not imply that any particular device must beused. For example, a computer need not necessarily perform thedetermining.

III. Forms of Sentences

Where a limitation of a first claim would cover one of a feature as wellas more than one of a feature (e.g., a limitation such as “at least onewidget” covers one widget as well as more than one widget), and where ina second claim that depends on the first claim, the second claim uses adefinite article “the” to refer to the limitation (e.g., “the widget”),this does not imply that the first claim covers only one of the feature,and this does not imply that the second claim covers only one of thefeature (e.g., “the widget” can cover both one widget and more than onewidget).

When an ordinal number (such as “first”, “second”, “third” and so on) isused as an adjective before a term, that ordinal number is used (unlessexpressly specified otherwise) merely to indicate a particular feature,such as to distinguish that particular feature from another feature thatis described by the same term or by a similar term. For example, a“first widget” may be so named merely to distinguish it from, e.g., a“second widget”. Thus, the mere usage of the ordinal numbers “first” and“second” before the term “widget” does not indicate any otherrelationship between the two widgets, and likewise does not indicate anyother characteristics of either or both widgets. For example, the mereusage of the ordinal numbers “first” and “second” before the term“widget” (1) does not indicate that either widget comes before or afterany other in order or location; (2) does not indicate that either widgetoccurs or acts before or after any other in time; and (3) does notindicate that either widget ranks above or below any other, as inimportance or quality. In addition, the mere usage of ordinal numbersdoes not define a numerical limit to the features identified with theordinal numbers. For example, the mere usage of the ordinal numbers“first” and “second” before the term “widget” does not indicate thatthere must be no more than two widgets.

When a single device, article or other product is described herein, morethan one device/article (whether or not they cooperate) mayalternatively be used in place of the single device/article that isdescribed. Accordingly, the functionality that is described as beingpossessed by a device may alternatively be possessed by more than onedevice/article (whether or not they cooperate).

Similarly, where more than one device, article or other product isdescribed herein (whether or not they cooperate), a singledevice/article may alternatively be used in place of the more than onedevice or article that is described. For example, a plurality ofcomputer-based devices may be substituted with a single computer-baseddevice. Accordingly, the various functionality that is described asbeing possessed by more than one device or article may alternatively bepossessed by a single device/article.

The functionality and/or the features of a single device that isdescribed may be alternatively embodied by one or more other deviceswhich are described but are not explicitly described as having suchfunctionality/features. Thus, other embodiments need not include thedescribed device itself, but rather can include the one or more otherdevices which would, in those other embodiments, have suchfunctionality/features.

IV. Disclosed Examples and Terminology Are Not Limiting

Neither the Title (set forth at the beginning of the first page of thepresent application) nor the Abstract (set forth at the end of thepresent application) is to be taken as limiting in any way as the scopeof the disclosed invention(s). An Abstract has been included in thisapplication merely because an Abstract of not more than 150 words isrequired under 37 C.F.R. § 1.72(b).

The title of the present application and headings of sections providedin the present application are for convenience only, and are not to betaken as limiting the disclosure in any way.

Numerous embodiments are described in the present application, and arepresented for illustrative purposes only. The described embodiments arenot, and are not intended to be, limiting in any sense. The presentlydisclosed invention(s) are widely applicable to numerous embodiments, asis readily apparent from the disclosure. One of ordinary skill in theart will recognize that the disclosed invention(s) may be practiced withvarious modifications and alterations, such as structural, logical,software, and electrical modifications. Although particular features ofthe disclosed invention(s) may be described with reference to one ormore particular embodiments and/or drawings, it should be understoodthat such features are not limited to usage in the one or moreparticular embodiments or drawings with reference to which they aredescribed, unless expressly specified otherwise.

No embodiment of method steps or product elements described in thepresent application constitutes the invention claimed herein, or isessential to the invention claimed herein, or is coextensive with theinvention claimed herein, except where it is either expressly stated tobe so in this specification or expressly recited in a claim.

All words in every claim have the broadest scope of meaning they wouldhave been given by a person of ordinary skill in the art as of thepriority date. No term used in any claim is specially defined or limitedby this application except where expressly so stated either in thisspecification or in a claim.

The preambles of the claims that follow recite purposes, benefits andpossible uses of the claimed invention only and do not limit the claimedinvention.

The present disclosure is not a literal description of all embodimentsof the invention(s). Also, the present disclosure is not a listing offeatures of the invention(s) which must be present in all embodiments.

Devices that are described as in communication with each other need notbe in continuous communication with each other, unless expresslyspecified otherwise. On the contrary, such devices need only transmit toeach other as necessary or desirable, and may actually refrain fromexchanging data most of the time. For example, a machine incommunication with another machine via the Internet may not transmitdata to the other machine for long period of time (e.g. weeks at atime). In addition, devices that are in communication with each othermay communicate directly or indirectly through one or moreintermediaries.

A description of an embodiment with several components or features doesnot imply that all or even any of such components/features are required.On the contrary, a variety of optional components are described toillustrate the wide variety of possible embodiments of the presentinvention(s). Unless otherwise specified explicitly, nocomponent/feature is essential or required.

Although process steps, algorithms or the like may be described orclaimed in a particular sequential order, such processes may beconfigured to work in different orders. In other words, any sequence ororder of steps that may be explicitly described or claimed does notnecessarily indicate a requirement that the steps be performed in thatorder. The steps of processes described herein may be performed in anyorder possible. Further, some steps may be performed simultaneouslydespite being described or implied as occurring non-simultaneously(e.g., because one step is described after the other step). Moreover,the illustration of a process by its depiction in a drawing does notimply that the illustrated process is exclusive of other variations andmodifications thereto, does not imply that the illustrated process orany of its steps are necessary to the invention(s), and does not implythat the illustrated process is preferred.

Although a process may be described as including a plurality of steps,that does not imply that all or any of the steps are preferred,essential or required. Various other embodiments within the scope of thedescribed invention(s) include other processes that omit some or all ofthe described steps. Unless otherwise specified explicitly, no step isessential or required.

Although a process may be described singly or without reference to otherproducts or methods, in an embodiment the process may interact withother products or methods. For example, such interaction may includelinking one business model to another business model. Such interactionmay be provided to enhance the flexibility or desirability of theprocess.

Although a product may be described as including a plurality ofcomponents, aspects, qualities, characteristics and/or features, thatdoes not indicate that any or all of the plurality are preferred,essential or required. Various other embodiments within the scope of thedescribed invention(s) include other products that omit some or all ofthe described plurality.

An enumerated list of items (which may or may not be numbered) does notimply that any or all of the items are mutually exclusive, unlessexpressly specified otherwise. Likewise, an enumerated list of items(which may or may not be numbered) does not imply that any or all of theitems are comprehensive of any category, unless expressly specifiedotherwise. For example, the enumerated list “a computer, a laptop, aPDA” does not imply that any or all of the three items of that list aremutually exclusive and does not imply that any or all of the three itemsof that list are comprehensive of any category.

An enumerated list of items (which may or may not be numbered) does notimply that any or all of the items are equivalent to each other orreadily substituted for each other.

All embodiments are illustrative, and do not imply that the invention orany embodiments were made or performed, as the case may be.

V. Computing

It will be readily apparent to one of ordinary skill in the art that thevarious processes described herein may be implemented by, e.g.,appropriately programmed general purpose computers, special purposecomputers and computing devices. Typically a processor (e.g., one ormore microprocessors, one or more microcontrollers, one or more digitalsignal processors) will receive instructions (e.g., from a memory orlike device), and execute those instructions, thereby performing one ormore processes defined by those instructions. Instructions may beembodied in, e.g., one or more computer programs, one or more scripts.

A “processor” means one or more microprocessors, central processingunits (CPUs), computing devices, microcontrollers, digital signalprocessors, or like devices or any combination thereof, regardless ofthe architecture (e.g., chip-level multiprocessing/multi-core, RISC,CISC, Microprocessor without Interlocked Pipeline Stages, pipeliningconfiguration, simultaneous multithreading).

Thus a description of a process is likewise a description of anapparatus for performing the process. The apparatus that performs theprocess can include, e.g., a processor and those input devices andoutput devices that are appropriate to perform the process.

Further, programs that implement such methods (as well as other types ofdata) may be stored and transmitted using a variety of media (e.g.,computer readable media) in a number of manners. In some embodiments,hard-wired circuitry or custom hardware may be used in place of, or incombination with, some or all of the software instructions that canimplement the processes of various embodiments. Thus, variouscombinations of hardware and software may be used instead of softwareonly.

The term “computer-readable medium” refers to any medium, a plurality ofthe same, or a combination of different media, that participate inproviding data (e.g., instructions, data structures) which may be readby a computer, a processor or a like device. Such a medium may take manyforms, including but not limited to, non-volatile media, volatile media,and transmission media. Non-volatile media include, for example, opticalor magnetic disks and other persistent memory. Volatile media includedynamic random access memory (DRAM), which typically constitutes themain memory. Transmission media include coaxial cables, copper wire andfiber optics, including the wires that comprise a system bus coupled tothe processor. Transmission media may include or convey acoustic waves,light waves and electromagnetic emissions, such as those generatedduring radio frequency (RF) and infrared (IR) data communications.Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, any other magneticmedium, a CD-ROM, DVD, any other optical medium, punch cards, papertape, any other physical medium with patterns of holes, a RAM, a PROM,an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, a carrierwave as described hereinafter, or any other medium from which a computercan read.

Various forms of computer readable media may be involved in carryingdata (e.g. sequences of instructions) to a processor. For example, datamay be (i) delivered from RAM to a processor; (ii) carried over awireless transmission medium; (iii) formatted and/or transmittedaccording to numerous formats, standards or protocols, such as Ethernet(or IEEE 802.3), SAP, ATP, Bluetooth™, and TCP/IP, TDMA, CDMA, and 3G;and/or (iv) encrypted to ensure privacy or prevent fraud in any of avariety of ways well known in the art.

Thus a description of a process is likewise a description of acomputer-readable medium storing a program for performing the process.The computer-readable medium can store (in any appropriate format) thoseprogram elements which are appropriate to perform the method.

Just as the description of various steps in a process does not indicatethat all the described steps are required, embodiments of an apparatusinclude a computer/computing device operable to perform some (but notnecessarily all) of the described process.

Likewise, just as the description of various steps in a process does notindicate that all the described steps are required, embodiments of acomputer-readable medium storing a program or data structure include acomputer-readable medium storing a program that, when executed, cancause a processor to perform some (but not necessarily all) of thedescribed process.

Where databases are described, it will be understood by one of ordinaryskill in the art that (i) alternative database structures to thosedescribed may be readily employed, and (ii) other memory structuresbesides databases may be readily employed. Any illustrations ordescriptions of any sample databases presented herein are illustrativearrangements for stored representations of information. Any number ofother arrangements may be employed besides those suggested by, e.g.,tables illustrated in drawings or elsewhere. Similarly, any illustratedentries of the databases represent exemplary information only; one ofordinary skill in the art will understand that the number and content ofthe entries can be different from those described herein. Further,despite any depiction of the databases as tables, other formats(including relational databases, object-based models and/or distributeddatabases) could be used to store and manipulate the data typesdescribed herein. Likewise, object methods or behaviors of a databasecan be used to implement various processes, such as the describedherein. In addition, the databases may, in a known manner, be storedlocally or remotely from a device which accesses data in such adatabase.

Various embodiments can be configured to work in a network environmentincluding a computer that is in communication (e.g., via acommunications network) with one or more devices. The computer maycommunicate with the devices directly or indirectly, via any wired orwireless medium (e.g. the Internet, LAN, WAN or Ethernet, Token Ring, atelephone line, a cable line, a radio channel, an optical communicationsline, commercial on-line service providers, bulletin board systems, asatellite communications link, a combination of any of the above). Eachof the devices may themselves comprise computers or other computingdevices, such as those based on the Intel® Pentium® or Centrino™processor, that are adapted to communicate with the computer. Any numberand type of devices may be in communication with the computer.

In an embodiment, a server computer or centralized authority may not benecessary or desirable. For example, the present invention may, in anembodiment, be practiced on one or more devices without a centralauthority. In such an embodiment, any functions described herein asperformed by the server computer or data described as stored on theserver computer may instead be performed by or stored on one or moresuch devices.

Where a process is described, in an embodiment the process may operatewithout any user intervention. In another embodiment, the processincludes some human intervention (e.g., a step is performed by or withthe assistance of a human).

VI. Continuing Applications

The present disclosure provides, to one of ordinary skill in the art, anenabling description of several embodiments and/or inventions. Some ofthese embodiments and/or inventions may not be claimed in the presentapplication, but may nevertheless be claimed in one or more continuingapplications that claim the benefit of priority of the presentapplication.

Applicants intend to file additional applications to pursue patents forsubject matter that has been disclosed and enabled but not claimed inthe present application.

VII. 35 U.S.C. § 112, Paragraph 6

In a claim, a limitation of the claim which includes the phrase “meansfor” or the phrase “step for” means that 35 U.S.C. § 112, paragraph 6,applies to that limitation.

In a claim, a limitation of the claim which does not include the phrase“means for” or the phrase “step for” means that 35 U.S.C. § 112,paragraph 6 does not apply to that limitation, regardless of whetherthat limitation recites a function without recitation of structure,material or acts for performing that function. For example, in a claim,the mere use of the phrase “step of” or the phrase “steps of” inreferring to one or more steps of the claim or of another claim does notmean that 35 U.S.C. § 112, paragraph 6, applies to that step(s).

With respect to a means or a step for performing a specified function inaccordance with 35 U.S.C. § 112, paragraph 6, the correspondingstructure, material or acts described in the specification, andequivalents thereof, may perform additional functions as well as thespecified function.

Computers, processors, computing devices and like products arestructures that can perform a wide variety of functions. Such productscan be operable to perform a specified function by executing one or moreprograms, such as a program stored in a memory device of that product orin a memory device which that product accesses. Unless expresslyspecified otherwise, such a program need not be based on any particularalgorithm, such as any particular algorithm that might be disclosed inthe present application. It is well known to one of ordinary skill inthe art that a specified function may be implemented via differentalgorithms, and any of a number of different algorithms would be a meredesign choice for carrying out the specified function.

Therefore, with respect to a means or a step for performing a specifiedfunction in accordance with 35 U.S.C. § 112, paragraph 6, structurecorresponding to a specified function includes any product programmed toperform the specified function. Such structure includes programmedproducts which perform the function, regardless of whether such productis programmed with (i) a disclosed algorithm for performing thefunction, (ii) an algorithm that is similar to a disclosed algorithm, or(iii) a different algorithm for performing the function.

Where there is recited a means for performing a function hat is amethod, one structure for performing this method includes a computingdevice (e.g., a general purpose computer) that is programmed and/orconfigured with appropriate hardware to perform that function.

Also includes a computing device (e.g., a general purpose computer) thatis programmed and/or configured with appropriate hardware to performthat function via other algorithms as would be understood by one ofordinary skill in the art.

VIII. Disclaimer

Numerous references to a particular embodiment does not indicate adisclaimer or disavowal of additional, different embodiments, andsimilarly references to the description of embodiments which all includea particular feature does not indicate a disclaimer or disavowal ofembodiments which do not include that particular feature. A cleardisclaimer or disavowal in the present application shall be prefaced bythe phrase “does not include” or by the phrase “cannot perform”.

IX. Incorporation by Reference

Any patent, patent application or other document referred to herein isincorporated by reference into this patent application as part of thepresent disclosure, but only for purposes of written description inaccordance with 35 U.S.C. § 112, paragraph 1 and enablement inaccordance with 35 U.S.C. § 112, paragraph 1, and should in no way beused to limit, define, or otherwise construe any term of the presentapplication where the present application, without such incorporation byreference, would not have failed to provide an ascertainable meaning,but rather would have allowed an ascertainable meaning for such term tobe provided. Thus, the person of ordinary skill in the art need not havebeen in any way limited by any embodiments provided in the reference

Any incorporation by reference does not, in and of itself, imply anyendorsement of, ratification of or acquiescence in any statements,opinions, arguments or characterizations contained in any incorporatedpatent, patent application or other document, unless explicitlyspecified otherwise in this patent application.

X. Prosecution History

In interpreting the present application (which includes the claims), oneof ordinary skill in the art shall refer to the prosecution history ofthe present application, but not to the prosecution history of any otherpatent or patent application, regardless of whether there are otherpatent applications that are considered related to the presentapplication, and regardless of whether there are other patentapplications that share a claim of priority with the presentapplication.

Some Embodiments

Prompt

As used herein, a prompt may include a message which is presented to auser. The message may be a question, a warning, an item of information,or any other message. An example of a prompt is a message asking if theuser wishes to save changes made to a document. A prompt may includeuser options for responding. For example, a prompt may include buttonsthat a user may click in order to indicate responses to the prompt, suchas “yes” or “no”. A prompt may include a window, box, dialog box, areany other area where a message may be displayed to the user. A promptmay be triggered, launched, or initiated by a program (e.g., byMicrosoft Word), by an operating system, or by any other software. Invarious embodiments, buttons on a prompt may themselves includemessages. For example, a button on a prompt may read “view changes”,which may serve as a message to the user telling the user that the usercan view alterations to a document by pressing the button.

Document

As used herein, the term “document” may include a set of data. The datamay be stored as a group or unit. The data may be stored, in computermemory, on a computer storage medium (e.g., on a compact disc (CD);e.g., on a digital versatile disc (DVD); e.g., on a floppy disk; e.g.,on a universal serial bus (USB) drive; e.g., on flash memory), on aserver, on a network, or in any other location. The data making up adocument may be stored in one or more locations. For example, a documentmay include a first set of data that is stored on a first computer and asecond set of data that is stored on a second computer. A document maybe stored in one or more remote locations. For example, a document mayinclude a first set of data that is stored on a first computer inAustralia, and a second set of data that is stored on a second computerin Argentina.

A document may include data stored in any suitable form. A document mayinclude data stored as bits, data stored as bytes, data stored asquantum bits, data stored as characters, data stored in digital form,data stored in analog form, and data stored in any other form. Adocument may include data on a printed page, such as words on a printedpage. A document may include data stored in compressed form. A documentmay include data stored in encrypted form.

In various embodiments, a set of data may be part of two or moredocuments. For example, a single image may be used in more than onedocument. The image may be stored in only a single location. As anotherexample, set of data may form a document in its own right, while alsobeing a subset of a larger set of data, the larger set of data alsoforming a document. For instance a first set of data may represent amodified version of a second set of data, yet may be stored inassociation with the second set of data as part of a larger set of data.The first set of data may thereby make up one document. The second setof data may make up another document. The union of the first set of dataand the second set of data may make up a third document.

In various embodiments, data that makes up a document may be delineatedfrom data that does not make up the document. As used herein, a“document tag” may include data which defines what data is in aparticular document. For example, a document tag may specify a range ofmemory addresses in a computer memory such that all memory addressesfalling within the specified range are understood to contain data thatis part of the same document.

A document tag may or may not itself form part of a document, in variousembodiments. In various embodiments, a document tag may include dataother than data that defines what data is in a particular document. Forexample, a document tag may include (a) data that defines what data isin a particular document, and (b) data that indicates what programshould be used for interpreting the data in the document (e.g.,Microsoft Excel, e.g., Microsoft Excel).

Copies of a Document

In various embodiments, there may exist a copy of a document. If a firstdocument comprises a first set of data, a copy of the first document maycomprise a second set of data. The second set of data may be stored in aseparate location that that of the first set of data. For example, thefirst set of data may be stored in the random access memory of acomputer, while the second set of data may be stored on the hard driveof the computer. Although the second set of data may be stored in adifferent location from the location of the first set of data, thesecond set of data may be similar to the first set of data. For example,the first set of data and the second set of data may represent the exactsame text characters. As another example, the first set of data and thesecond set of data may include the same sequence of bits. The second setof data may make up a second document. In various embodiments, a thirddocument may be made up of the first document and the second document.

In various embodiments, a first document and a second document which isa copy of the first document may comprise the same set of data. Forexample, the data making up a first document may be stored in the samememory locations as are the data making up a second document. In variousembodiments, a first document and a second document which is a copy ofthe first document may comprise overlapping sets of data. For example, afirst document may comprise a first and second set of data, while a copyof the first document may comprise a second set of data and a third setof data.

Versions of a Document

In various embodiments, there may exist a version of a document. If adocument comprises a first set of data, a version of the document maycomprise a second set of data. The second set of data may make up asecond document. The second set of data may be stored in a separatelocation that that of the first set of data. For example, the first setof data may be stored in the random access memory of a computer, whilethe second set of data may be stored on the hard drive of the computer.Although the second set of data may be stored in a different locationfrom the location of the first set of data, the second set of data maybe similar to the first set of data. For example, the second set of datamay represent a number of characters that are also represented by thefirst set of data.

In various embodiments, a first document and a second document which isa version of the first document may comprise overlapping sets of data.For example, a first document may comprise first and second sets ofdata, while a second document may comprise first and third sets of data.

In various embodiments, a version of a first document may be a seconddocument which was created as a copy of the first document at some priorpoint in time. For example, user might be using a word processingprogram. The user might save a copy of the document he is working on. Hemay then continue to add text to the document. The saved copy may thusrepresent a version (e.g., a prior version) of the document that theuser is presently working on.

Data Displayed Versus Data Stored

A document may include data as it is stored as well as data as it isdisplayed. For example, a document may include a set of text charactersthat are displayed for human perception (e.g., on a computer monitor) aswell as a binary representation of the same text characters. As anotherexample, a document (e.g., an image) may include a set of colored pixelelements as well a binary representation of the colors to be displayedat different pixel elements.

Various embodiments contemplate a file, document, or other set of datathat can be altered. The alterations may occur using a program, such asa word processing program, a spreadsheet program, a drawing program, adatabase program, an editing program, a program for composing emails, animage processing program, a program for composing and arranging music, aprogram for sharing documents, or any other program. Exemplary documentsinclude Microsoft Word documents, WordPerfect documents, Microsoft Exceldocuments, and so on. Exemplary programs include Microsoft Word,Microsoft Excel, Microsoft PowerPoint, Microsoft Access, MicrosoftVisio, Microsoft Outlook, and Twiki.

Alterations to a document may include: (a) adding or removing text; (b)adding or removing blank characters, such as spaces, carriage returns,tabs, and other blank characters; (c) adding or removing tables; (d)changing formatting, such as margins, fonts, text sizes, line spacing,highlighting, outline numbering, indentation, or any other formatting;(e) changing colors, such as the fill colors in shapes, the colors ofcells in spreadsheets, the colors of cells in tables, the color of text,or any other colors; (f) adding or removing shapes (e.g., circles,rectangles, triangles, lines, arrows, and other shapes), includingshapes used in drawing programs, including shapes used in slidepresentations, including shapes used in word processing documents; (g)adding or removing charts, tables, graphs, pictures, symbols, or othergraphics; (h) changing the position of text; (i) changing the positionof shapes; (j) changing the position of charts, tables, graphs,pictures, symbols, or other graphics; (k) changing the size of shapes;(l) changing the size of charts, tables, graphs, pictures, symbols, orother graphics; (m) changing the orientation of shapes, charts, tables,graphs, pictures, symbols, or other graphics; and any other alterations.

As used herein, the term “save” may include a process of creating a copyor a version of a document. For example, a computer may save a documentwhich comprises a first set of data by creating a second set of datawhich is the same as the first set of data but which is stored in adifferent location than is the first set of data. In variousembodiments, a computer may save a document which comprises a first setof data stored in random access memory by creating a second set of datawhich is stored on the hard drive of the computer. In variousembodiments, a computer may save a copy of a document which comprises afirst set of data stored in a relatively more temporary area by creatinga second set of data which is stored in a relatively more permanentarea. In various embodiments, two versions of a document may exist. Oneversion may comprise a more recently altered version, such as a versionto which text has been recently added. In various embodiments, a saveoperation may include destroying the older version of a document andreplacing it with the recently altered version. As will be appreciated,there may be any number of implementations the process of saving, and noparticular description of saving described herein is intended to belimiting.

Opening and Editing a Document

In various embodiments, a user may open a document in order to makealterations to the document. The user may indicate a desire to open adocument, for example, by using a computer mouse to double-clock on anicon representing the document, by typing the name of the document at acommand line, by selecting the name of the document from a within menusystem (e.g., using the “File” menu “Open” option in Microsoft Word), orusing any other method of opening a document.

The document selected for opening may include a first set of data storedat a first location. For example, the document selected for opening mayinclude a first set of data that is stored on the hard drive of acomputer. Once the document is opened, the first set of data may remainstored at the same location. However, a copy of the document may becreated. The copy of the document may include a second set of data thatis stored at a second location. The second set of data may be initiallythe same as the first set of data (e.g., the second set of data maycomprise the same sequence of bits as does the first set of data; e.g.,the second set of data may represent the same sequence of characters asdoes the first set of data). The second location may reside on anaccessible medium, such as on random access memory. Thus, after adocument has been opened, there may exist two versions of the document.One version may be the document as it was when it was opened. Thisversion may be stored on the hard drive of a computer. Another versionmay be the document as it is currently being viewed and edited by auser. The second version may be stored in random access memory, or insome other rapidly accessible medium. In various embodiments, these twoversions of the document may be considered to be part of the samedocument.

Once a document has been opened, a first version may reside in a firstlocation, while a second version may reside in a second location. Thefirst version may represent the document at the time it was opened. Auser may then proceed to alter the second version. A user may alter thesecond version by providing instructions to the computer. The user mayprovide instructions through such actions as typing, moving and clickinga mouse, or otherwise providing computer inputs or other inputs. Notethat the act of pressing a key or clicking a mouse may itself be aninstruction. A user need not necessarily spell out an instruction inorder to alter a version of a document. As desired, a user may “save”the altered second version. When the user saves these alterations, thedata making up the second version may be copied to another storagelocation, such as to the hard drive of the computer, thus creating athird version of the document. The first version of the document may beerased. In some embodiments, the data for the third version of thedocument may simply by used to overwrite the data for the first versionof the document. Thus, in various embodiments, the third version of thedocument may replace the first version of the document. In variousembodiments, data representing a difference between the altered secondversion and the first version of the document may be stored. Thus, thesecond version may be reproducible using the stored first version of thedocument together with the data representing changes. It will beappreciated that there are many other possible ways for implementing a“save” operation.

After a “save” operation, two versions of a document may again exist.The version now stored in a first location (e.g., in a relatively morepermanent location such as on a computer hard drive) may represent theoriginally opened version plus any alterations made to that version upuntil the time of the save operation. The version now stored in a secondlocation (e.g., in a relatively more accessible location such as inrandom access memory) may represent the version stored in the firstlocation plus any alterations made since the time of the most recentsave operation. At the time of a save operation, both versions of thedocument may be identical, since a user may not have made anyalterations yet to the version stored in the second location. Thus, invarious embodiments, after a save operation, a user may “close” adocument. When a user closes a document, one of the two versions of thedocument in existence may be destroyed. For example, a version of thedocument comprising data stored in a relatively accessible location(e.g., in random access memory) may be destroyed. The destruction of theversion may not result in any loss of information, however, since anidentical version of the document may remain stored in a relatively morepermanent location (e.g., on a computer hard drive).

Close operations may be initiated in a number of ways. A user may use amouse to click a specially marked button that is associated with adocument. For example, a user may click an “x” in the top right handcorner of a screen which is displaying the contents of a document inorder to close the document. As another example, a user may access amenu of a program being used to view and alter the document. Suchprograms may include Microsoft Word and Microsoft Excel, for example.Within the menu, a user may select a “close” option. As another example,a user may close an entire program (e.g., Microsoft Word) which is beingused to view and alter a document. In closing the program, the user maybe indirectly closing the document. As another example, a user may shutdown a computer which is being used to view and alter a document. Theuser may thereby be indirectly closing the document. It will beappreciated that close operations may be initiated in various otherways. In various embodiments, close operations may happen without therequest of a user. For example, a second program may force the closureof a first program that is being used to view and alter a document. Asanother example, a computer may automatically initiate a shut-down.

A save operation need not only occur at the behest of a user. A saveoperation may occur automatically. For example, a computer may beoperative to automatically perform a save operation on a document every10 minutes. Automatic saving may help to avoid the loss of alterationsmade by a user should a loss of power occur (e.g., thus destroying aversion of a document in the random access memory of a computer).

Discarding a Document

As used herein, discarding a document may include destroying data makingup the document, allowing data which makes up the document to becomeoverwritten (e.g., with data describing another document), allowing datamaking up the document to be lost, removing reference to the location ofthe data making up the document (e.g., a document may be effectivelydiscarded if the computer storing the document no longer has anyindication of where in computer memory the document is stored), removingaccess to the data making up the document, or any other way of removinga document. It will be understood that a version or a copy of a documentmay be discarded in a similar fashion.

In various embodiments described herein, when a user decides not to savea version of a document, the user may be effectively discarding thatversion of the document. In various embodiments, when a user decides tosave a version of a document, the user may be effectively discarding thepreviously saved version of the document. For example, saving a secondversion of a document may cause a first version of the document to beoverwritten.

Reference is now made to FIG. 6 , which describes processes according tovarious embodiments. Processes described in FIG. 6 may be performed byany suitable device, such as by a computer, a series of computers, aserver, a computer and a server, a mobile computing device, and anyother capable device.

A user may be in the midst of viewing or altering a document. At step614, an instruction to close the document may be received. Theinstruction may be given by the user, may be given automatically (e.g.,by a program running in the background), or may be given by any othermeans. At step 618, a comparison may be performed between a firstversion of the document and a second version of the document. The secondversion of the document may represent a version stored in a readilyaccessible medium (e.g., in random access memory) and also may representa version that is currently displayed for the user. The first version ofthe document may represent a version stored in a more permanent medium,such as on a computer hard drive. Through the process of comparison, itmay be determined whether there are differences between the firstversion of the document and the second version of the document.

The first version and the second version may be compared in a number ofways. In various embodiments, a first set of data making up the firstversion of the document is understood to have a particular order. Forexample, the data is ordered according to the memory addresses in whichthe data is stored. Thus, for example, data stored in addresses with lownumbers is understood to come before data stored in memory addresseswith higher numbers. Similarly, a second set of data making up thesecond version of the document is understood to have a particular order.The first and second versions of the documents may thus be compared byproceeding element by element (e.g., bit by bit; e.g., byte by byte;e.g., character by character; e.g., pixel by pixel) through the firstset of data and through the second set of data. The first data elementof the first set of data may be compared with the first data element ofthe second set of data. Then the second data element of the first set ofdata may be compared with the second data element of the second set ofdata. Then the third data element of the first set of data may becompared with the third data element of the second set of data. If,after all data elements are considered, there are no differences betweenthe first set of data and the second set of data, then the versions ofthe document may be considered to be the same. However, if there aredifferences between the first set of data and the second set of data,such differences may be recorded. For example, where two compared dataelements are different, a copy of both the first and second dataelements may be stored in a separate location in computer memory.Further, the position of such data elements within their respective datasets may be noted. This may allow for a future listing of alldifferences between the first version of the document and the secondversion of the document, as well as for an indication of the positionwithin each documents (e.g., the page number; e.g., the line number;e.g., the cell reference; e.g., the character number; e.g., the pixelcoordinates) that the differences occur.

In various embodiments, existing functions may be used to comparedocuments. For example, functions native to Microsoft Word may be usedfor comparing documents.

In various embodiments, an explicit comparison need not be performedbetween the first version and the second version. In variousembodiments, the second version of the document may comprise the sameset of data that makes up the first version of the document, plus asecond set of data describing differences between the second version ofthe document and the first version of the document. This may be anefficient way to store the second version, for example. Thus, acomparison between the first version and the second version of thedocument may require reference only to the second set of data. Byreference to the second set of data, the existence of any differencesmay be deduced. Further, the exact nature of such differences may bededuced. If the second set of data is the empty set, then it may beassumed that the first version of the document and the second version ofthe document are the same.

At step 622, it may be determined whether the first version and thesecond version of the document are the same. If the two versions are thesame, then the second version may be safely destroyed without loss ofinformation. Thus, at step 626, the second version of the document isdestroyed. In various embodiments, the second version of the documentneed not be explicitly destroyed. For example, power may be removed fromthe memory storing the second version, thus causing the data making upthe second version of the document to be lost. As another example,though the second version of the document may not be explicitlydestroyed, the computer may allow that the memory locations storing thedata of the second version to become overwritten, such as by otherprograms.

If the first version and the second version are not the same, a promptmay be displayed. Displaying a prompt may correspond with step 630. Theprompt may ask the user whether the user wishes to save changes. Theprompt may include options for the user to select. Such options mayinclude a “yes” option, a “no” option, a “cancel” option, and a “viewchanges” option. It will be understood that, in various embodiments,alternative words may be used. For example, the word “affirmative” maybe used in place of “yes”, the word “negative” in place of no, and thewords “never mind” in place of “cancel”. Various alternatives to “viewchanges” may also be listed. Alternatives to the word “view” mayinclude: (a) “view”; (b) “show”; (c) “list”; (d) “enumerate”; (e)“recite”; (f) “describe”; (g) “indicate”; (h) “preview”; (i) “display”;(j) “feature”; (k) “point out”; (l) “specify”; (m) “convey”; and anyother suitable alternatives. Alternatives to the word “changes” mayinclude: (a) “changes”; (b) “change” (e.g., if there is only onechange); (c) “alterations”; (d) “differences”; (e) “modifications”; (f)“additions”; (h) “subtractions”; (i) “corrections”; (j) “variances”; andany other suitable alternatives. It will be understood that words may beused in the singular or in the plural, in various embodiments (e.g.,“change”; e.g., “changes”). It will be understood that more or less thantwo words may be used to describe an option, that an option may bedescribed by icons, graphics, shading, or other visual indicators, thatan option may be described by audio messages (e.g., a voice may prompt auser as to whether a user would like to “save changes”, “discardchanges”, “view changes”, or “cancel”), or that an option may bedescribed in any other suitable fashion.

A prompt may include a dialog box, such as those which may be generatedin Windows programs using Visual Basic. An example of a prompt accordingto some embodiments is shown in FIG. 1 . As will be appreciated, aprompt may take many other shapes or forms, according to variousembodiments.

In various embodiments, options given to a user in conjunction with aprompt may be clickable or otherwise selectable. For example, in FIG. 1, a user may have the ability to bring his mouse pointer over the boxlabeled “View Changes” 110. By clicking on the box, the user may causeto be displayed an indication of changes or differences between thesecond version of the document and the first version of the document. Invarious embodiments, options may be selected by a user in other ways.For example, a user may speak his choice, type a key on a keyboard toindicate his choice, or use any other means of selection.

After the display of the prompt, a user may select the “no” option. Inthis case, it may be presumed that the user does not wish to savechanges (e.g., the differences in the second version of the documentversus the first version of the document). Thus, the second version ofthe document may be destroyed 626, may be allowed to be lost, etc.

After the display of the prompt, a user may select the “yes” option. Inthis case, it may be presumed that the user does wish to save changes.Thus, the user may not wish to preserve the version of the documentwhich existed prior to the changes, i.e., the first version. Thus, thefirst version of the document may be destroyed 638. The second versionof the document may then be copied to a more permanent storage location,such as to a computer hard drive (as in step 642). In variousembodiments, the second version of the document may simply be writtenover the first version of the document, thus destroying the firstversion while copying the second version. At step 646, the secondversion of the document may be destroyed, allowed to be lost, etc. Thismay occur as a result of the initial request to close the document atstep 614. However, though the second version may be destroyed, noinformation from the second version need be lost since a copy has beenmade at step 642.

After display of the prompt, a user may select the “cancel” option. Inthis case, it may be presumed that the user no longer wishes to closethe document. In various embodiments, the prompt may be removed.

After display of the prompt, a user may select the “view changes”option. This option may present advantages to the user. The user may notremember if he has intentionally made any changes to the document or notsince the creation of the second version. If the user has intentionallymade changes, then the user would likely prefer to save those changes.However, if the user has not intentionally made changes (e.g., the userhas accidentally hit a few keys and thereby deleted a passage from hisdocument), then user would not likely wish to save changes. If the userdoes not remember whether or not he has intentionally made changes, thenthe user may face a dilemma as to whether or not to save the changes. Byselecting a “view changes” option and then actually seeing an indicationof what changes have been made, the user may be able to make a moreinformed decision as to whether or not he would like to save thechanges.

Once the user has selected the “view changes” option, the differencesbetween the second and first versions of the document may be determined650. As described herein, such differences may be determined in a numberof different ways, in various embodiments. In various embodiments, suchdifferences may already have been determined in earlier steps, such asat step 618 when the second version was compared to the first version.

At step 654, the differences between the second and first versions ofthe document may be displayed. The differences may be displayed in anumber of different formats. The differences may be displayed in visualformat, may be presented in audio format, or may be presented in anyother fashion. In various embodiments, exact differences are notnecessarily displayed. For example, a summary indication of differencesmay be described. For instance, a description of differences may say,“there has been a paragraph added on page 7”. In various embodiments, aside by side visual comparison of two documents is used to highlightdifferences.

After the differences have been displayed to the user, the user mayremain with the option of whether or not to save changes, or whether to“cancel” and thereby reverse his decision to close the document in thefirst place. Thus, flow may proceed back to 634 where the user's nextdecision is ascertained. However, since the “view changes” option hasalready been selected, the option may disappear from the dialog box.

FIG. 2 shows a prompt 200 according to various embodiments. The topportion of the prompt 205 may represent a typical or default version ofa prompt shown when a user has requested to close a document withouthaving saved alterations. The bottom portion of the prompt 210 mayrepresent an additional portion that may be added. The additionalportion of the prompt 210 may be added through a modification of theMicrosoft Windows operating system, e.g., through a modification to the“save” module that is built into the Microsoft Windows operating system.The additional portion of the prompt may be added using a patch added tothe Microsoft Windows operating system, e.g., using additional code thatinterfaces with an applications programming interface (API) of theMicrosoft Windows operating system such as with an API to the “save”module in the Microsoft Windows operating system. As will beappreciated, in various embodiments, many additions or modifications maybe made to any default prompt used in conjunction with a save operation.For example, the portion 210 may be instead added at the side of thedefault portion 205, on top of the default portion 205, separated fromthe default portion 205, on top of the default portion 205, overlappingwith the default portion 205, or in any other location. Further, it willbe appreciated that in various embodiments, the portion 210 may be othershapes and sizes, such as being hexagonal in shape. Button 215, whenselected by a user, may trigger the display of indications ofalterations made to the document being closed.

FIG. 3 shows a prompt 300 according to various embodiments. In responseto the prompt, the user has options “yes”, “no”, “cancel”, and “viewchanges” 310. On button 310, the two downward pointing angle bracketsindicate that the user can click the button 310 in order to have thechanges revealed below.

FIG. 4 shows a prompt 400 which is an expanded version of prompt 300according to various embodiments. The user has pressed the “viewchanges” button 310 and now various alterations to the user's documentare shown in the portion of prompt 400 labeled with 415. In FIG. 4 ,additions of text are shown with an underline. For example, “will be” isunderlined to show that the text has been added to the document.Deletions of text are shown in strikethrough. For example, “are expectedto be” is shown in strikethrough to show that “are expected to be” hasbeen deleted. Line numbers (e.g., “Line 95”) have been added forconvenience to show the line of the document on which the change hasbeen made. Such line numbers do not necessarily appear in the documentitself. The portion of the prompt 415 shows only those lines in thedocument to which changes have been made. This may allow more convenientviewing of all the changes. Deletions and additions of graphics are alsoshown. For example, at line 210 in the document, a graphic depicting alogo has been deleted. At the same line, another graphic depicting thesame logo has been added. A scroll bar at the right of portion 210 mayallow a user to scroll through to see additional alterations if allcannot fit at the same time in portion 415. Also in FIG. 4 , the button310 which had read “view changes” has now become a button 410 whichreads “hide changes”. By clicking or otherwise selecting the “hidechanges” button, a user may cause the portion 415 to disappear.

In various embodiments, portion 415 may allow a user to view an entiredocument. The portion 415 may allow a user to view both altered andunaltered parts of a document. As will be appreciated, variousembodiments contemplate other ways to display the alterations in adocument.

FIG. 5 shows a prompt 500 according to various embodiments. The promptincludes portions 505, 540, and 545. Portion 545 shows alterations tothe user's document. Portion 540 provides various user options in theform of clickable or otherwise selectable buttons. The button labeled“prey change” 515, when clicked, may direct that the prior alteration tobe shown. For example, if the user clicks on button 515, an alterationto line 63 of the document may be shown. The button labeled “nextchange” 520, when clicked, may direct that the next alteration be shown.For example, when a user clicks button 520, an alteration at line 107 inthe document may be shown. The button labeled “mark change” 525, whenclicked, may direct that alteration or alterations currently shown benoted. The button labeled “save all marked changes” 535, when clicked,may direct that all alterations that had previously been marked (e.g.,using button 525) be actually saved. Thus, when button 535 is clicked, anew version of the document may be stored on the computer's hard disk,with the new document incorporating all alterations that had been markedwith button 525. The button labeled “save change” 530, when clicked, maydirect that the currently visible alteration or alterations (e.g., thealterations currently visible in portion 545) be saved. Thus, forexample, when button 530 is clicked, a new version of the document issaved such that the new version incorporates the alteration currentlyvisible in 545.

-   1. When to display the prompt. A prompt which asks a user whether or    not he would like to view changes or alterations made to a document    may be shown at various times. The prompt may also include a    question asking the user whether or not he would like to save    changes made to the document. For example, the prompt may ask the    user whether he would like to save changes. Following the question,    the prompt may ask the user whether or not he would like to view the    changes.    -   1.1. When someone tries closing the document without saving. A        prompt may be shown if a user attempts to close a document        without saving. A prompt may be shown if a user attempts to        close a version of a document that is different from another        version of the document stored on a computer hard drive or on        any other relatively long term medium (e.g., on a medium that        maintains information even in the absence of power). A prompt        may be shown if a user attempts to close a document and the        version of the document that the user is currently working on is        different from a version of the document that is stored in a        relatively long term medium (e.g., on the computer hard drive).        A prompt may be shown if a user attempts to close a document and        the version of the document that the user is currently working        on is different from a saved version of the document. A prompt        may be shown if a user attempts to close a document to which        changes have been made, without having saved those changes.    -   1.2. When someone actually wants to save the document. They can        be asked if they want to see the changes they are saving. For        example, this could be an option under the “file” menu, where        “save” usually is. A prompt may be shown if a user indicates a        desire to save a document. For example, a user may type the key        combination “control+s” in a Microsoft Windows environment, or        may click on the “file” menu and the “save” option, e.g., in        Microsoft Word. A prompt may thereupon appear asking whether the        use would like to view the changes that he will be saving.    -   1.3. During an automatic backup. A prompt may be shown during a        save operation that has been initiated automatically. In various        embodiments, a document may be automatically saved. Automatic        saving may occur periodically, such as every five minutes, every        10 minutes, or every hour. Automatic saving may serve the        purpose of saving alterations to a document without requiring        that a user remember to do so, so that fewer alterations will be        lost in the event of a power shut down or similar event. When a        save operation is automatically initiated, a prompt may be        generated asking a user whether he would like to view the        alterations being saved. The user may have a predetermined        amount of time to respond to the prompt. For example, the user        may have 30 seconds to respond to the prompt. If the user does        not respond, the alterations may be saved automatically, in some        embodiments. If the user does respond to the prompt then the        user may select an option to “view changes” or a like option. An        indication of alterations to the document may then be presented.        The alterations may be alterations between the version the user        is currently working on and the version that had previously been        saved. The alterations may be alterations between the version        the user is currently working on and the last version that had        been automatically saved. In various embodiments, a save        operation that is initiated automatically may include a backup        operation.    -   1.4. When something else forces the document to be closed—e.g.,        the user turns off the computer or the user closes the program.        In various embodiments, the closure of a document may be        initiated or caused by events other than a specific request to        close the document. In various embodiments, a user may request        to close a program. For example, a user may click an “x” icon in        the upper right hand corner of Microsoft Word in order to        request that the Microsoft Word program be closed (e.g.,        terminated). Such a request may have the consequence of closing        any documents currently being displayed, edited, or otherwise in        use by the program. For example, closing Microsoft Word may have        the effect of closing any documents currently being edited in        Microsoft Word. In various embodiments, when there is a request        to close a program which is being used to view, edit, or        otherwise operate on a document, a prompt may appear asking a        user whether the user would like to view changes made to the        document.

In various embodiments, the closure of a document may be initiated orcaused by a request to shut down a computer (e.g., a personal computer;e.g., a handheld computer). For example, a document may be open forediting on a computer. When the computer is shut down (e.g., when thepower to the computer or to one or more components of the computer iscut off) then the version of the document currently being worked on by auser may be lost or destroyed as an automatic consequence. In variousembodiments, when a request to shut down a computer has been received, aprompt may be displayed asking whether the user would like to viewchanges that have been made to a document (e.g., to a document that iscurrently open). If the user indicates that he does wish to view changes(e.g., by clicking on a button on the prompt), then an indication ofalterations made may be presented to the user. The user may then havethe opportunity to save the alterations or to not save the alterations.Once the user has made his choice, the shutting down of the computer mayproceed.

-   -   1.5. During an automatic shut down. (E.g., program has        encountered an error and must close). In various embodiments, a        computer may shut down automatically. For example, a computer        may be set or programmed to shut down when it has not been used        for more than a predetermined period of time. If a document is        being edited or otherwise used on the computer, then the        document may be closed automatically as a consequence of the        computer shutting down. In various embodiments, when a computer        initiates a process of shutting down, and a document is open        then a prompt may be displayed for the user asking the user        whether the user wishes to view changes made to a document.

-   2. What are the options to display? When a prompt is displayed,    various options may be displayed. For example, a prompt may be    displayed for the user asking the user whether he would like to save    changes. The user may then have various options to respond to the    question.    -   2.1. Save Changes, Don't Save Changes, Show Changes. In various        embodiments, an option available to the user may be to save        changes. If the user selects this option (e.g., by clicking),        then alterations to the document the user is working on may be        saved. In various embodiments, an option available to the user        may be to not save changes. If the user selects this option,        then alterations to the document the user is working on may be        discarded or allowed to be lost. In various embodiments, an        option available to the user may be to view the alterations that        have been made to the document. If the user selects this option,        then alteration which have been made to the document may be        displayed or otherwise presented to the user.    -   2.2. Receive recommendation. In various embodiments, an option        available to the user may be to ask for a recommendation (e.g.,        to ask for a recommendation from the computer as to whether or        not the user should save the changes). If the user selects this        option then the computer may recommend to the user to either        save the alterations or not to save the alterations to the        document. The computer may also provide an explanation. For        example, the computer may display a message which says that        since only one character changed and the added character created        a misspelling, it was likely the change was made in error and        therefore should not be saved.    -   2.3. View summary information about changes. In various        embodiments there may be options available to the user to view        summary statement or statistics about alterations made. A user        may have the option to view information regarding the number of        changes made, the time that changes were made, the portion of        the document in which changes were made (e.g., “all changes were        made on page 4”), and any other descriptive information about        alterations made.    -   2.4. Save changes under a different document name In various        embodiments, an option available to the user may be to save        changes, but in a separate document. If the user selects this        option, the version of the document the user is currently        working on may be saved. However, in various embodiments, the        version may be saved under a different name. Thus, for example,        if a user is working on a document called “Market Segmentation”        then the version of the document that the user is currently        working on may saved under the name “TempDoc Market        Segmentation”. By saving the document in such a manner, the user        may have the option of deciding later whether or not to begin        working from the previously saved version of the document        “Market Segmentation” or the document with the latest        alterations, “TempDoc Market Segmentation.”    -   2.5. Highlight changes that are to be saved. In various        embodiments, an option available to a user may be an option to        view the changes that are to be saved should the user choose to        save the changes. This option might cause the changes to be        highlighted in a view of the document, to be underlined in a        view of a document, to be shown in strikethrough, or to be shown        or displayed or presented in any other fashion.

-   3. What happens when you select “view changes”?    -   3.1. You can simply type ok after viewing the changes and then        go back to the original dialogue box. In various embodiments, a        user may select an option to view alterations made to a        document. Once those alterations have been presented, the user        may have another option available to him The other option may be        labeled “ok”, “back” or in some other fashion. By selecting this        option, the user may return to the original prompt where he once        again has the option to save or not to save alterations made to        the document.    -   3.2. You can save the changes from the new place, e.g., with a        new dialogue box. In various embodiments, a user may select an        option to view alterations made to a documents. A new prompt or        dialog box may be presented to the user. Within the new prompt        or dialog box, the user may have the option of saving changes.        For example, an option may be labeled “accept changes”, “save”,        or with any other pertinent label. The new prompt or dialog may        also, in various embodiments, include the changes that the user        had opted to view.

-   4. How to show the changes. In various embodiments, alterations made    to a document may be presented in various ways.    -   4.1. The two versions of the document may be shown in full. In        various embodiments, two versions of a document may be shown in        full. The first version may represent a version currently being        worked on, such as a version that is stored in random access        memory. A second version may represent a version that had        previously been saved, such as a version stored on a computer        hard drive. By viewing both documents in full, a user may, in        principal, be able to deduce the differences between the two        documents. In some embodiments, the documents may be shown in        adjacent windows, with like text lined up. In this way, the user        may be able to scan through both documents in order to look for        places where text (or other objects) do not correspond        perfectly.    -   4.2. What was added, and what was deleted may be shown. In        various embodiments, items that have been added to a document        may be indicated. For example, a window may display only text,        graphics, or other objects which have been added to a document.        In various embodiments, context for the additions may be shown.        For example, line and page numbers may be shown, surrounding        preexisting text may be shown (e.g., text that was already there        before the changes were added may be shown), and any other        context may be shown. In various embodiments, items which have        been deleted from a document may be indicated. For example, a        window may display only text, graphics, or other objects which        have been deleted. For deleted items, context may also be shown.        For example, the text surrounding deleted text may be shown. In        various embodiments, added or deleted items may be marked in        particular ways. Added items may be underlined or otherwise        marked. Deleted items may be shown in strikethrough or otherwise        marked. In various embodiments, when an item is moved within a        document (e.g., when a paragraph is cut from one portion of the        document and pasted in another portion of the document), the        alteration shown to the document may include a deletion and an        addition. The deletion correspond to the deletion of the item        from its initial position, and the addition may correspond to        the addition of the item to its final position.    -   4.3. A verbal description of the changes. In various        embodiments, a verbal description of alterations to a document        may be made. For example, a computer synthesized voice may read        the text that has been added to a document. A verbal description        may include a summary or qualitative description. For example, a        synthesize voice may say that a graphic has been added without        specifically describing all shapes and colors within the        graphic.    -   4.4. The time the changes were made. In various embodiments, the        time of one or more alterations may be presented. For example,        an indication of a sentence that was added to a document may be        shown, along with an indication of a time and date. The time and        date may be shown in a different color or font from the sentence        itself so as to indicate that the indication of the time is not        part of the addition.    -   4.5. Highlights of the changes. In various embodiments,        alterations may be shown in highlighted form. For example, text        that has been added to a document may be shown in a block of        yellow. As will be appreciated, many other methods may be used        to distinguish changes. For example, underlining, italicization,        bolding, changing the font size, changing the color, changing        the gray scale, or any other suitable method may be used for        distinguishing changes. Changes of addition or of deletion may        be distinguished, e.g., with highlighting. I    -   4.6. Were there any changes made at all? In various embodiments,        an indication may be provided as to whether there were any        alterations made to a document. For example, the computer may        display a message saying, “There were changes,” or a message        saying, “There were no changes made.”    -   4.7. How many changes were made? In various embodiments, an        indication may be provided as to how many changes were made to a        document. The number of changes may be determined based on the        number of characters added. The number of changes may be        determined based on the number of characters deleted. For        example, the number of changes reported may be equal to the        number of characters added plus the number of characters        deleted. In various embodiments, the number of changes may be        determined based on the number of words added. In various        embodiments, the number of changes may be determined based        on: (a) the number of words deleted; (b) the number of sentences        added; (c) the number of sentences deleted; (d) the number of        paragraphs added; (e) the number of paragraphs deleted; (f) the        number of keystrokes made; (g) the number of graphics added; (h)        the number of graphics deleted; (i) the number of formatting        changes made; (j) the number of pages added; (k) the number of        pages deleted; (l) the number of cells modified (e.g., in a        spreadsheet program); (m) the change in size of the document        (e.g., the change in the number of bytes required to store the        file; e.g., the change in the number of characters stored in the        file); or based on any other pertinent factor. As an example, a        computer may display a message which says, “Forty changes were        made to your document.”    -   4.8. Qualitative differences. In various embodiments,        alterations made to a document may be described qualitatively.        -   4.8.1. The number of pages before and after the change may            be described. In various embodiments, an indication may be            provided as to the proportion of a document that occurs            before a change, and the proportion of the document that            occurs after the change. For example, an indication may be            provided as to the number of words, paragraphs, pages, or            cells before a change, and the number of words, paragraphs,            pages or cells after a change.        -   4.8.2. The number of pages there were in the document before            the change was made, and the number of pages there were in            the document after the change was made. In various            embodiments, the size of a document may be described before            and after a change. The size of a document may be described            in terms of words, pages, bytes, bits, paragraphs, cells,            pixels, frames, or in terms of any other metric.    -   4.9. Modify the save procedure to add a pane to the dialog box.        This way, you aren't really modifying code, you are just adding        to it. In various embodiments, additions of code may be made to        the save procedure which comes with a computer operating system,        such as with Microsoft Windows. The additional code may create        an extra portion of a prompt. The extra portion may be tacked        onto a prompt that was hitherto created by the operating system.        For example, the original prompt of the operating system may        read, “Would you like to save changes to ‘Document X’”, with        available options of “yes”, “no”, and “cancel”. The extra        portion may be tacked onto the original prompt, such as in a        pane adjacent to the original prompt. In various embodiments,        the additional pane may look like the portion indicated as 210        in FIG. 2 .    -   4.10. A before and after, or an actual difference. E.g., when        showing differences in images, you can subtract one pixel value        from the other. In various embodiments, alterations in an image        may be shown by showing both before and after versions of the        image. In various embodiments, only portions of the image that        have changed may be shown. For example, before and after        versions of only 200 pixels out of 1000 pixels in an image may        be shown. In various embodiments, the results of subtracting one        image from another may be shown. For example, pixel values        (e.g., pixel values as represented by numbers, such as 0        through 255) of a first version of an image may be subtracted        from the pixel values of a second version of the image. The        resulting difference may be displayed for each pixel. For        example, a given pixel may have changed from having values of        (200, 100 50) to having values of (100, 90, 30). Note that three        values may correspond to a pixel, one for each primary color, in        various embodiments. The difference in the value are thus (100,        10, 20). To illustrate the difference, a pixel may display the        colors corresponding to (100, 10, 20).

-   5. Detection of accidental changes. In various embodiments, a    determination may be made as to whether alterations to a document    were most likely made accidentally or whether they were most likely    made on purpose.    -   5.1. If changes appear to have been made accidentally, then        recommend not saving. In various embodiments, if it is        determined that changes made to a document were most likely        accidental then a recommendation may be made that the changes        not be saved. For example, a computer may present a message        which says, “All changes appear to be accidental. Therefore, it        is recommended that changes not be saved.” In various        embodiments, if it is determined that changes made to a document        were most likely accidental then a document may be automatically        closed without changes having saved. For example, a user may        indicate a desire to close a version of a document even though        unsaved changes exist. The computer may allow the version of the        document to close without presenting a prompt if the computer        determines that any changes made to the document were most        likely accidental.    -   5.2. If changes appear to have been made on purpose, then        recommend saving. In various embodiments, if it is determined        that alterations made to a document were most likely made        intentionally, then it may be recommended that alterations be        saved. For example, a computer may display a message saying,        “Changes appear to be intentional. Therefore, it is recommended        that changes be saved.”    -   5.3. Few key strokes. In various embodiments, if alterations are        based on less than a predetermined number of user inputs (e.g.,        less then 3 key strokes; e.g., less than two movements of the        mouse), then it may be determined that changes made to a        document were most likely accidental. For example, it may        assumed that a relatively small number of user inputs could have        occurred accidentally (e.g., a user could have accidentally hit        a few keys with his elbow.)    -   5.4. Deletion of large portions of text. In various embodiments,        if alterations consist of deletions of significant portions of a        document (e.g., one paragraph or more; e.g., one page or more),        then such alterations may be determined to be accidental. It may        be assumed, for example, that a user would not intentionally        want to delete large portions of a document that he had put so        much work into.    -   5.5. Nonsensical letters. In various embodiments, if alterations        consist of nonsensical sequences, such alterations may be        determined to be accidental. For example, the addition of the        text, “abfweo” may be considered to be accidental since the text        does not correspond to any known word or name.    -   5.6. Improper punctuation. In various embodiments, if        alterations consist of sequences of improperly punctuated words        or sentences, then such alterations may be considered to have        occurred accidentally.

-   6. Interacting with the operating system    -   6.1. Modifying the API provided by the operating system.    -   6.2. Creating an alternate module to the one provided by the API        for performing the save function.

In various embodiments, a user may save one or more versions of adocument. The versions may represent a progression. For example, eachversion may represent a portion of a book that has so far beencompleted. Each newer version may incorporate everything from theprevious version plus additions. Each version may represent a version ofa document with which a user is satisfied. In various embodiments, theversions of a document may be ordered in some way. In variousembodiments, versions of a document are ordered according to the datesat which they were saved (e.g., according to the dates when the versionswere last saved; e.g., according to the dates when the versions werefirst saved). Different versions of the document may be named accordingto a convention. For example, the document may have a base name, such as“Document X” to which are appended version designations, such as “v1”,“v2”, “v3” and so on. Thus, a first version of the document may becalled “Document X v1”, a second version may be called “Document X v2”,and so on. The naming of documents may occur automatically. For example,any time a user indicates he is happy with a version of the document,the version may be saved and given a new version number. In variousembodiments, a user may be given the option of viewing alterations madeto a version of the document he is currently working on as compared withany of the prior versions of the document. For example, the user mayhave the option of viewing alterations made to a version of “Document X”he is currently working on since “Document X v1”, since “Document X v2”or since any other version of “Document X”. In various embodiments, theuser may select in a prompt an option to “view changes”. The user maythen have the further option, either in the same or in a new prompt, toselect the version of the document that will serve as the basis ofcomparison for determining alterations.

In various embodiments, a user may be able to select a paragraph orother portion of a document. For example, a user may be able to put hismouse over a paragraph. Once a portion of the document has beenselected, the user may be able to view prior versions of that portion ofthe document. Prior versions of that portion may include portionscorresponding to the selected portions, but existing in prior versionsof the document. For example, when a user puts his mouse over aparagraph, the user may be able to view prior versions of thatparagraph.

In various embodiments, a prompt may ask a user whether he would like tosee the changes that have been made to a document. For example, theprompt may read “Would you like to see the changes made to thisdocument?” The prompt may occur in the absence of any prompt asking theuser whether or not he would like to save changes made to the document.

In various embodiments, a list, sequence, or other enumeration ofalterations made to a document may be presented. For example, uponindicating a desire to close a document, a user may be prompted with thequestion of whether or not he wishes to save changes made to thedocument. If the user responds in the affirmative then the list ofchanges may be presented to the user. The user may proceed through thelist one at a time. For example, the user may highlight one change at atime. The user may decide, for each individual change, whether or not tosave it. In various embodiments, the user may decide to save all changesat once. For example, there may be a clickable button labeled “savechange”. Clicking such a button may allow the user to save the changethat is currently highlighted. There may be another button that islabeled “save all” or the like. Clicking the button may allow the userto save all changes at once.

As used herein, a computer touchpad may include any touch sensitiveinterface to a computer, where such interface may be capable ofdetecting the motion of objects (e.g., fingers) with which it is incontact, and translating such motions into computer commands (e.g., intothe motions of a mouse pointer).

In various embodiments, a joystick may serve as an input device to acomputer. In various embodiments, a trackball may serve as an inputdevice to a computer.

Further Embodiments

The following should be interpreted as embodiments, not claims.

A1. A method comprising:

-   -   determining a first version of a document;    -   receiving a first set of instructions;    -   determining a second version of the document based on the first        version and the first set of instructions;    -   receiving a second set of instructions, the second set of        instructions directing that the first version of the document be        discarded;    -   displaying, after receiving the second set of instructions, a        set of options, the options comprising:        -   a first option to discard the first version of the document;        -   a second option to discard the second version of the            document;        -   a third option to view a comparison of the first version of            the document with the second version of the document;    -   receiving an indication of a selection of one of the three        options;    -   discarding the first version of the document if the first option        has been selected;    -   discarding the second version of the document if the second        option has been selected; and    -   displaying the view of the comparison of the first version of        the document with the second version of the document if the        third option has been selected.

A2. The method of A1 in which the document is one of:

-   -   (a) a word processing document;    -   (b) a spreadsheet document;    -   (c) an image;    -   (d) a drawing;    -   (e) a computer aided design file;    -   (f) an audio file; and    -   (g) a text document.

A3. The method of A1 in which the second version of the document is aversion of the document which is currently being displayed on acomputer.

A4. The method of A1 in which the first version of the document is aversion of the document which has previously been saved.

A5. The method of A1 in which the first set of instructions includeinstructions from one of:

-   -   (a) a keyboard;    -   (b) a computer mouse;    -   (c) a computer touchpad;    -   (d) a trackball; and    -   (e) a joystick.

A6. The method of A1 in which the first set of instructions includesinstructions for making alterations.

A7. The method of A1 in which the second set of instructions includesinstructions to close the first version of the document.

A8. The method of A1 in which the second set of instructions includesinstructions to close a program which is being used to edit the firstversion of the document.

A9. The method of A1 in which the second set of instructions includesinstructions to shut down the computer on which the document is beingedited.

A10. The method of A1 in which displaying, after receiving the secondset of instructions, a set of options includes: displaying, afterreceiving the second set of instructions, a set of clickable buttons,the buttons representing:

-   -   a first option to discard the first version of the document;    -   a second option to discard the second version of the document;        and    -   a third option to view a comparison of the first version of the        document with the second version of the document.

A11. The method of A10 in which receiving an indication of a selectionof one of the three options includes receiving an indication of which ofthe clickable buttons the user has clicked on.

A12. The method of A1 in which displaying the view of the comparisonincludes displaying text that is present in the second document and notpresent in the first document with an underline font.

A13. The method of A1 further comprising:

displaying, after receiving the second set of instructions, a message,the message asking whether a user wishes to save changes to thedocument.

A14. The method of A1 in which:

-   -   the first option is presented as a button labeled “Yes”;    -   the second option is presented as a buttoned labeled “No”; and    -   the third option is presented as a button labeled “View        Changes”.

A15. The method of A1 in which displaying the view of the comparisonincludes displaying a list of distinct changes made between the firstversion of the document and the second version of the document if thethird option has been selected, the method further including:

-   -   receiving an indication that a subset of the list of distinct        changes has been selected;    -   receiving an instruction to save all selected changes; and    -   saving the subset of the list of distinct changes.

A16. The method of A1 in which determining a first version of a documentincludes:

-   -   displaying a plurality of versions of a document, each version        having been previously saved by a user and provided with a        distinct version identifier;    -   receiving a selection of one of the plurality of versions,        thereby determining the first version.

A17. A method comprising:

-   -   receiving an indication that a user wishes to close a second        version of a document;    -   determining whether the second version of the document has been        saved;    -   presenting, if the second version has not been saved, a prompt        asking whether the user wishes to save changes, the prompt        including user selectable options to save changes, to not save        changes, and to view changes;    -   determining the user's selection from among the selectable        options; and    -   presenting, if the user has selected the option to view changes,        an indication of changes made between the second version of the        document and a first version of the document which has been        previously saved.

A18. A method comprising:

-   -   receiving an indication that a user wishes to close a second        version of a document;    -   determining whether the second version of the document has been        saved; and    -   presenting, if the second version has not been saved, a prompt        asking whether the user wishes to view changes to the document.

A19. The method of A18 further including:

-   -   presenting an indication of changes made between the second        version of the document and a first version of the document        which has been previously saved.

What is claimed is:
 1. A non-transitory computer-readable mediumconfigured to store instructions that, when executed by at least oneprocessor, control: detecting a request to close a document; determiningwhether the document comprises at least one change that has not beensaved; based on the detecting and determining that the documentcomprises the at least one change, determining whether the at least onechange has a characteristic indicating the at least one change wasaccidental based on (i) a number of user inputs causing the at least onechange, (ii) at least a predetermined portion of the document beingdeleted by the at least one change, or (iii) the at least one change notcorresponding to any of a plurality of predetermined text sequences, andwhen the at least one change is determined to have the characteristic,providing a prompt to save the document and, in conjunction with theprompt, a recommendation whether the at least one change should besaved, the prompt including an option to be presented with the at leastone change; receiving a selection of the option which indicates arequest to be presented with the at least one change; based on thereceiving, displaying a comparison between a first version of thedocument and a second version of the document, the comparison indicatingthe at least one change, wherein the second version of the document isdifferent from the first version of the document as a result of thesecond version of the document being altered; receiving in response tothe displaying the comparison, a request to save the at least onechange; and based on the request to save the at least one change,replacing the first version of the document which is stored innon-volatile memory with a version of the document that includes the atleast one change from the second version of the document.
 2. Thenon-transitory computer-readable medium of claim 1, wherein: the secondversion of the document includes at least one additional unsaved changefrom the first version that is different from the at least one change;the request to save the at least one change excludes the at least oneadditional unsaved change; and the version of the document that replacesthe first version of the document excludes the at least one additionalunsaved change.
 3. The non-transitory computer-readable medium of claim1, wherein the prompt is part of a dialog box that gives an option tosave the at least one change.
 4. A method comprising: controlling, by atleast one processor: detecting a request to close a document;determining whether the document comprises at least one change that hasnot been saved; based on the detecting and the determining that thedocument comprises the at least one change, determining whether the atleast one change has a characteristic indicating the at least one changewas accidental based on (i) a number of user inputs causing the at leastone change, (ii) at least a predetermined portion of the document beingdeleted by the at least one change, or (iii) the at least one change notcorresponding to any of a plurality of predetermined text sequences, andwhen the at least one change is determined to have the characteristic,providing a prompt to save the document and, in conjunction with theprompt, a recommendation whether the at least one change should besaved, the prompt including an option to be presented with the at leastone change; receiving a selection of the option which indicates arequest to be presented with the at least one change; based on thereceiving, displaying a comparison between a first version of thedocument and a second version of the document, the comparison indicatingthe at least one change, wherein the second version of the document isdifferent from the first version of the document as a result of thesecond version of the document being altered; receiving, in response tothe displaying the comparison, a request to save the at least onechange; and based on the request to save the at least one change,replacing the first version of the document which is stored innon-volatile memory with a version of the document that includes the atleast one change from the second version of the document.
 5. The methodof claim 4, wherein: the second version of the document includes atleast one additional unsaved change from the first version that isdifferent from the at least one change; the request to save the at leastone change excludes the at least one additional unsaved change; and theversion of the document that replaces the first version of the documentexcludes the at least one additional unsaved change.
 6. The method ofclaim 4, wherein the prompt is part of a dialog box that gives an optionto save the at least one change.
 7. An apparatus comprising at least oneprocessor configured to control: detecting a request to close adocument; determining whether the document comprises at least one changethat has not been saved; based on the detecting and determining that thedocument comprises the at least one change, determining whether the atleast one change has a characteristic indicating the at least one changewas accidental based on (i) a number of user inputs causing the at leastone change, (ii) at least a predetermined portion of the document beingdeleted by the at least one change, or (iii) the at least one change notcorresponding to any of a plurality of predetermined text sequences, andwhen the at least one change is determined to have the characteristic,providing a prompt to save the document and, in conjunction with theprompt, a recommendation whether the at least one change should besaved, the prompt including an option to be presented with the at leastone change; receiving a selection of the option which indicates arequest to be presented with the at least one change; based on thereceiving, displaying a comparison between a first version of thedocument and a second version of the document, the comparison indicatingthe at least one change, wherein the second version of the document isdifferent from the first version of the document as a result of thesecond version of the document being altered; receiving in response tothe displaying the comparison, a request to save the at least onechange; and based on the request to save the at least one change,replacing the first version of the document which is stored innon-volatile memory with a version of the document that includes the atleast one change from the second version of the document.
 8. Theapparatus of claim 7, wherein: the second version of the documentincludes at least one additional unsaved change from the first versionthat is different from the at least one change; the request to save theat least one change excludes the at least one additional unsaved change;and the version of the document that replaces the first version of thedocument excludes the at least one additional unsaved change.
 9. Theapparatus of claim 7, wherein the prompt is part of a dialog box thatgives an option to save the at least one change.
 10. The non-transitorycomputer-readable medium of claim 1, wherein the prompt includes a “No”button for discarding the at least one change, a “Yes” button for savingthe at least one change, and a “View Changes” button for being presentedwith the at least one change.
 11. The non-transitory computer-readablemedium of claim 1, wherein the at least one change includes a pluralityof changes, and the comparison sequentially displays each of the atleast one changes one at a time.
 12. The method of claim 4, wherein theprompt includes a “No” button for discarding the at least one change, a“Yes” button for saving the at least one change, and a “View Changes”button for being presented with the at least one change.
 13. The methodof claim 4, wherein the at least one change includes a plurality ofchanges, and the comparison sequentially displays each of the at leastone changes one at a time.
 14. The apparatus of claim 7, wherein theprompt includes a “No” button for discarding the at least one change, a“Yes” button for saving the at least one change, and a “View Changes”button for being presented with the at least one change.
 15. Theapparatus of claim 7, wherein the at least one change includes aplurality of changes, and the comparison sequentially displays each ofthe at least one changes one at a time.
 16. The apparatus of claim 7, inwhich the document comprises at least one of: (a) a word processingdocument; (b) a spreadsheet document; (c) an image; (d) a drawing; (e) acomputer aided design file; (f) an audio file; and (g) a text document.